1. Field of the Invention
The present invention relates, in general, to bitmap management and, more particularly, to reducing bitmap management overhead by using a shadow copy of the bitmap.
2. Relevant Background
For reasons of consistency and reliability, various data services engaging in such things as remote replication, local mirroring and snapshots, issue data writes to multiple storage surfaces. The surfaces maintaining the data of these writes must typically remain identical from the user's perspective to provide desired attributes such as redundancy and dependability. In the event that an interruption occurs during these multiple writes, the state of the data on the various surfaces can not be easily determined.
A bitmap can be maintained to record the progress of writes to the multiple surfaces. During the recovery from an interruption, the contents of the bitmap can be examined to determine which regions of data can be potentially different among the various surfaces on which data was written, and therefore need to be repaired. The bitmap must reflect all data that may differ among the multiple surfaces, therefore a noted limitation is that the bitmap must be updated before multiple writes can be issued.
A bitmap is a set of bits that can be used to efficiently process queries on a body of data associated with the bitmap. In this context, a bitmap is a series of bits that indicate which of the records stored in the body of data satisfy a particular criterion. Each region in the body of data has a corresponding bit in the bitmap. Each bit in the bitmap serves as a flag to indicate whether the region that corresponds to the bit satisfies the criteria associated with the bitmap. Essentially a bitmap is data about data.
Before a data write can proceed, the bits in the bitmap that correspond to the regions being written must be set to indicate that those regions may differ among the multiple surfaces. After the writes to all the multiple surfaces have completed, the corresponding bits in the bitmap can be cleared, as the data in those regions are now identical on all the surfaces. The bitmap must be stored on a persistent storage medium in order for it to be available after a system failure, so setting and clearing bits in the bitmap involves extra reads and writes. Thus the overhead associated with managing the bitmap has a direct and significant impact on the performance of data writes as well as the overall performance of the system.
A need exists, therefore, to reduce the overhead associated with managing the bitmap. The present invention addresses this and other problems.